package com.todo.delicacy.infrastructure.repository;


import com.todo.common.common.entity.response.page.PageResult;
import com.todo.delicacy.infrastructure.entity.condition.RestaurantInfoCondition;
import com.todo.delicacy.infrastructure.entity.po.RestaurantInfoPO;

import java.util.List;

/**
 * (RestaurantInfo)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 21:10:04
 */
public interface RestaurantInfoRepository {

    /**
     * 多条件查询饭店列表
     *
     * @param restaurantInfoCondition
     * @return
     */
    PageResult<RestaurantInfoPO> queryRestaurantInfoByCondition(RestaurantInfoCondition restaurantInfoCondition);

    /**
     * 多条件查询饭店列表数量
     *
     * @param restaurantInfoCondition
     * @return
     */
    Long queryCountByCondition(RestaurantInfoCondition restaurantInfoCondition);

    /**
     * 根据主键id查询饭店信息
     *
     * @param id
     * @return
     */
    RestaurantInfoPO queryRestaurantInfoPOById(Long id);

    /**
     * 新增饭店信息
     *
     * @param restaurantInfoPO
     * @return
     */
    Boolean insertRestaurantInfoPO(RestaurantInfoPO restaurantInfoPO);

    /**
     * 根据主键id更新饭店信息
     *
     * @param restaurantInfoPO
     * @return
     */
    Boolean updateRestaurantInfoPOById(RestaurantInfoPO restaurantInfoPO);

    /**
     * 根据主键id删除饭店信息
     *
     * @param id
     * @return
     */
    Boolean removeRestaurantInfoPOById(Long id);

    /**
     * 根据POIId查询饭店信息
     *
     * @param storePoiId
     * @return
     */
    RestaurantInfoPO queryRestaurantInfoByPoiId(Long storePoiId);

    /**
     * 根据饭店id集合查询饭店信息
     *
     * @param restaurantIdList
     * @return
     */
    List<RestaurantInfoPO> queryRestaurantInfoByIdList(List<Long> restaurantIdList);

    /**
     * 根据饭店名称查询饭店信息
     *
     * @param restaurantName
     * @return
     */
    List<RestaurantInfoPO> queryRestaurantInfoByName(String restaurantName);
}
